/* 
 * File:   FileService.h
 * Author: maximiliano
 *
 * Created on 28 de mayo de 2013, 19:42
 */

#ifndef FILESERVICE_H
#define	FILESERVICE_H

#include <error.h>
#include "server_IMensajeEntranteManejador.h"
using namespace TP::Comunicacion::Eventos;

namespace TP {

    class FileService  : public IMensajeEntranteManejador {
    
    public:
        
        FileService();
        
        virtual ~FileService();
    
        virtual void mensajeEntranteManejador (IMensajero* pMensajero, const string& pMensaje);        
    
    private:
        
        void responderEco(IMensajero* pMensajero, vector<string> &pComando);
        
        // Declara un archivo nuevo
        void DeclareFile(IMensajero* pMensajero, vector<string> &pComando);

        // Agrega al final del archivo fileName el bloque de bytes chunk
        bool PutFileChunk(IMensajero* pMensajero, vector<string> &pComando);

        // Termina de definir el archivo
        bool DefineFile(IMensajero* pMensajero, vector<string> &pComando);        
        
        void parseMensaje (vector<string> & pComando, const string& pMensaje) throw (int);
    };
}

#endif	/* FILESERVICE_H */

